home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 February: Technology Seed / Mac Tech Seed Feb '97.toast / ODF Release 3 / ODFDev / Form / Sources / Views.fr < prev   
Encoding:
Text File  |  1996-12-16  |  18.4 KB  |  678 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //    File:                Views.fr
  3. //    Release Version:    $ ODF 3 $
  4. //
  5. //    Contains:            Resources defining the Form part's views
  6. //
  7. //    Copyright:            (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  8. //========================================================================================
  9.  
  10. #ifndef FWRESFIL_K
  11. #include "FWResFil.k"
  12. #endif
  13.  
  14. #ifndef FWVIEWS_FR
  15. #include "FWViews.fr"
  16. #endif
  17.  
  18. #ifndef FWNOTDEF_H
  19. #include "FWNotDef.h"     
  20. #endif
  21.  
  22. #ifndef DEFINES_K
  23. #include "Defines.k"
  24. #endif
  25.  
  26. #ifndef FWGRCTL_FR
  27. #include "FWGrCtl.fr"
  28. #endif
  29.  
  30. //========================================================================================
  31. // Defines
  32. //========================================================================================
  33.  
  34. /*
  35.     This view layout was designed for a "full size" frame;
  36.     the content view's extent (logical size) is the same as its physical size.
  37.     At runtime the frame will almost certainly be smaller; it'll be resized down.
  38. */
  39.  
  40. #define true             1
  41. #define false            0
  42. #define kFrameX            492
  43. #define kFrameY            576
  44. #define kFixedFrameX    FW_FIX (kFrameX)
  45. #define kFixedFrameY    FW_FIX (kFrameY)
  46. #define kScrollbarSize     16
  47. #define kScrollbarOverlap 1
  48. #define kContentX        (kFrameX - kScrollbarSize + kScrollbarOverlap)
  49. #define kContentY        (kFrameY - kScrollbarSize + kScrollbarOverlap)
  50. #define kEmbContentX    (kFrameX - kScrollbarSize)
  51. #define kEmbContentY    (kFrameY - kScrollbarSize)
  52. #define LABEL_FONT        { FW_FIX (12), FW_kPlain, "Palatino" }
  53. #define WBOUNDS(L,T,W,H) FW_BOUNDS (L, T, L + W, T + H)
  54.  
  55. //========================================================================================
  56. // type RFormView
  57. //========================================================================================
  58.  
  59. type RFormView : FW_RPictSView(Label='Frmv')
  60. {
  61.     // This class adds a picture ID and 2 radio-clusters to FW_RSuperView
  62.     // (See code in CFormView::InitializeFromStream()).
  63. Picture2:
  64.     integer;
  65.     
  66.     FW_RRadioCluster;    
  67.     FW_RRadioCluster;    
  68. };
  69.  
  70. //========================================================================================
  71. // type RScrollEdit
  72. //========================================================================================
  73. // Custom scrolling edit view 
  74.  
  75. type RScrollEdit : FW_REditView(Label='Sedv')
  76. {
  77. HorizViewID:
  78.     longint;            // Horizontal scrollbar id, or 0 for no scrollbar
  79. VertViewID:
  80.     longint;            // Vertical scrollbar id, or 0 for no scrollbar
  81. TextWidth:
  82.     FW_RFixed;            // text width (or 0 to use same width as view)
  83. };
  84.  
  85. //========================================================================================
  86. // type RPwdEditView
  87. //========================================================================================
  88. // Custom edit view to type hidden passwords
  89.  
  90. type RPwdEditView : FW_REditView (Label='Pwdv')
  91. {
  92. };
  93.  
  94. //========================================================================================
  95. // resource FW_RFrameLayout (kRootFormView)
  96. //========================================================================================
  97. // See constants in "FWViews.k", macros & resource types in "FWViews.fr"
  98.  
  99. resource FW_RFrameLayout (kRootFormView)
  100. {
  101.     //
  102.     // Planned view layout size
  103.     //
  104.     
  105.     FW_POINT (kFrameX, kFrameY),
  106.     
  107.     //
  108.     // Views
  109.     // We use an includeView to get at the kFormContentView layout.
  110.     // Also we add scrollbars.
  111.     //
  112.     
  113.     {
  114.         FW_RIncludeView (
  115.             0,
  116.             FW_BOUNDS (0, 0, kContentX, kContentY),
  117.             FW_kFitToEnclosure,
  118.             FW_POINT (kContentX, kContentY),
  119.             false,                                // not the content view
  120.             FW_kNoScrolling,
  121.             {},                                    // no direct subviews
  122.             kFormContentView
  123.         ),
  124.         FW_RScrollBar (
  125.             kHorzScrollBarID,
  126.             FW_STDHORIZONTALSB (kFixedFrameX, kFixedFrameY),
  127.             FW_kHScrollBarBinding,
  128.             0, 0, 0, 0,    1, FW_ONE, FW_ONE        // all values are fixed up at runtime
  129.         ),
  130.         FW_RScrollBar (
  131.             kVertScrollBarID,
  132.             FW_STDVERTICALSB (kFixedFrameX, kFixedFrameY),
  133.             FW_kVScrollBarBinding,
  134.             0, 0, 0, 0,    1, FW_ONE, FW_ONE        // all values are fixed up at runtime
  135.         ),
  136.         FW_RGrowBox (
  137.             kGrowBoxID,
  138.             FW_STDGROWBOX (kFixedFrameX, kFixedFrameY),
  139.             FW_kGrowBoxBinding
  140.         )
  141.     },
  142.     
  143.     //
  144.     // The scroller hooks up scrollbars and the content view;
  145.     // there is only one per frame.
  146.     //
  147.     
  148.     {
  149.         FW_RScrollBarScroller (
  150.             0,                                    // what is auto-scroll inset?
  151.             FW_POINT (16, 16),                    // scroll units
  152.             true,                                // page up and page down
  153.             true,                                // live scrolling
  154.             kHorzScrollBarID,
  155.             kVertScrollBarID
  156.         ) 
  157.     }
  158.  
  159. };
  160.  
  161. //========================================================================================
  162. // resource FW_RFrameLayout (kEmbeddedFormView)
  163. //========================================================================================
  164. // See constants in "FWViews.k", macros & resource types in "FWViews.fr"
  165.  
  166. resource FW_RFrameLayout (kEmbeddedFormView)
  167. {
  168.     //
  169.     // Planned view layout size
  170.     //
  171.     
  172.     FW_POINT (kFrameX, kFrameY),
  173.     
  174.     //
  175.     // Views
  176.     // We use an includeView to get at the kFormContentView layout.
  177.     // Also we add scrollbars.
  178.     //
  179.     
  180.     {
  181.         FW_RIncludeView (
  182.             0,
  183.             FW_BOUNDS (0, 0, kEmbContentX, kEmbContentY),
  184.             FW_kFitToEnclosure,
  185.             FW_POINT (kContentX, kContentY),
  186.             false,                                // not the content view
  187.             FW_kNoScrolling,
  188.             {},                                    // no direct subviews
  189.             kFormContentView
  190.         ),
  191.         FW_RScrollBar (
  192.             kHorzScrollBarID,
  193.             FW_STDHORIZONTALSB (kFixedFrameX, kFixedFrameY),
  194.             FW_kHScrollBarBinding,
  195.             0, 0, 0, 0,    1, FW_ONE, FW_ONE        // all values are fixed up at runtime
  196.         ),
  197.         FW_RScrollBar (
  198.             kVertScrollBarID,
  199.             FW_STDVERTICALSB (kFixedFrameX, kFixedFrameY),
  200.             FW_kVScrollBarBinding,
  201.             0, 0, 0, 0,    1, FW_ONE, FW_ONE        // all values are fixed up at runtime
  202.         )
  203.         // Compared to root view we don't have a growbox
  204.     },
  205.     
  206.     //
  207.     // The scroller hooks up scrollbars and the content view;
  208.     // there is only one per frame.
  209.     //
  210.     
  211.     {
  212.         FW_RScrollBarScroller (
  213.             0,                                    // what is auto-scroll inset?
  214.             FW_POINT (16, 16),                    // scroll units
  215.             true,                                // page up and page down
  216.             true,                                // live scrolling
  217.             kHorzScrollBarID,
  218.             kVertScrollBarID
  219.         ) 
  220.     }
  221. };
  222.  
  223. //========================================================================================
  224. // resource FW_RFrameLayout (kPrintFormView)
  225. //========================================================================================
  226.  
  227. resource FW_RFrameLayout (kPrintFormView)
  228. {
  229.     //
  230.     // Planned view layout size
  231.     //
  232.     
  233.     FW_POINT (kFrameX, kFrameY),
  234.     
  235.     //
  236.     // Views
  237.     // We use an includeView to get at the kFormContentView layout.
  238.     // Also we add scrollbars.
  239.     //
  240.     
  241.     {
  242.         FW_RIncludeView (
  243.             0,
  244.             FW_BOUNDS (0, 0, kFrameX, kFrameY),
  245.             FW_kFitToEnclosure,
  246.             FW_POINT (kContentX, kContentY),
  247.             false,                                // not the content view
  248.             FW_kNoScrolling,
  249.             {},                                    // no direct subviews
  250.             kFormContentView
  251.         ),
  252.         // Compared to embedded view we don't have scrollbars
  253.         // Compared to root view we don't have a growbox
  254.     },
  255.     {} // We don't have a scroller either.
  256. };
  257.  
  258. //========================================================================================
  259. // resource FW_RViewLayout (kFormContentView)
  260. //========================================================================================
  261.  
  262. resource FW_RViewLayout (kFormContentView)
  263. {
  264.     //
  265.     // Planned view layout size
  266.     //
  267.     
  268.     FW_POINT (kContentX, kContentY),
  269.     
  270.     //
  271.     // Views
  272.     //
  273.     
  274.     {
  275.         RFormView (
  276.             kFormViewID,
  277.             FW_BOUNDS (0, 0, kContentX, kContentY),
  278.             FW_kFitToEnclosure,                        // not true - is overridden in AdjustToNewLayout
  279.             FW_POINT (kContentX, kContentY),
  280.             true,                                    // is content view / scrolling view
  281.             FW_kXYScrolling,
  282.             
  283.             //
  284.             // Subviews
  285.             //
  286.             
  287.             {
  288.                 FW_REditView (    // First name
  289.                     kFirstNameEdViewID,                // view id
  290.                     FW_BOUNDS(272,56,272+192,76),    // bounds
  291.                     FW_kFixedBounds,                // binding
  292.                     20,                                // max chars
  293.                     9,                                // attributes
  294.                     FW_SYSTEM_FONT,
  295.                     ""                                // initial text
  296.                 ),
  297.                 FW_REditView (    // Last name
  298.                     kLastNameEdViewID,                // view id
  299.                     FW_BOUNDS(272,80,272+192,100),
  300.                     FW_kFixedBounds,                // binding
  301.                     20,                                // max chars
  302.                     9,                                // attributes
  303.                     FW_SYSTEM_FONT,
  304.                     ""                                // initial text
  305.                 ),
  306.                 FW_REditView (    // member name
  307.                     kMemberNameEdViewID,            // view id
  308.                     FW_BOUNDS(272,104,272+192,124),
  309.                     FW_kFixedBounds,                // binding
  310.                     20,                                // max chars
  311.                     9,                                // attributes
  312.                     FW_SYSTEM_FONT,
  313.                     ""                                // initial text
  314.                 ),
  315.                 FW_REditView (    // e-mail address
  316.                     kEMailEdViewID,                    // view id
  317.                     FW_BOUNDS(272,128,272+192,148),
  318.                     FW_kFixedBounds,                // binding
  319.                     30,                                // max chars
  320.                     9,                                // attributes
  321.                     FW_SYSTEM_FONT,
  322.                     ""                                // initial text
  323.                 ),
  324.                 FW_RScrollBar (    // Vertical scrollbar for text-edit
  325.                     kEditVScrollBarID,            // view id
  326.                     FW_BOUNDS(448,420,448+kScrollbarSize,420+96),
  327.                     FW_kFixedBounds,            // view binding
  328.                     0,                            // control message
  329.                     0,                            // control receiver
  330.                     0,                            // control value
  331.                     0,                            // SB Min Value (adjusted at runtime)
  332.                     1,                            // SB Max Value (adjusted at runtime)
  333.                     FW_ONE,                        // SB Minor Units (adjusted at runtime)
  334.                     FW_ONE                        // SB Major Units (adjusted at runtime)
  335.                 ),
  336.                 RScrollEdit (        // Comments (custom scrolling edit view)
  337.                     kCommentsEdViewID,                // view id
  338.                     FW_BOUNDS(8,420,449,420+96),
  339.                     FW_kFixedBounds,                // binding
  340.                     -1,                                // max chars (32K)
  341.                     13,                                // attributes
  342.                     FW_NORMAL_FONT,
  343.                     "",                                // initial text
  344.                     0, // kEditHScrollBarID,        // Horizontal SB
  345.                     kEditVScrollBarID,                // Vertical SB
  346.                     FW_FIX(441)                        // text width (used only with horiz SB)
  347.                 ),
  348.                 FW_RButton (
  349.                     kSubscribeCheckID,                // view id
  350.                     FW_BOUNDS(12,152,12+192,152+16),
  351.                     FW_kFixedBounds,                // binding
  352.                     FW_kButtonPressedMsg,            // control message
  353.                     0,                                // control receiver
  354.                     1,                                // control value
  355.                     FW_kCheckButton,                // button kind
  356.                     FW_SYSTEM_FONT,
  357.                     "Subscribe to ODFFlash"            
  358.                 ),
  359.                 FW_RListBox (
  360.                     kPlatformListBoxID,                // view id
  361.                     FW_BOUNDS(272,224,272+180,224+76),
  362.                     FW_kFixedBounds,                // binding
  363.                     10,                                // number of rows
  364.                     1,                                // vertical SB
  365.                     0,                                // single selection
  366.                     1,                                // use focus frame
  367.                     0,                                // use clientdata
  368.                     FW_kListBoxDoubleClickedMsg,    // DblClick message
  369.                     FW_SYSTEM_FONT,                    // font
  370.                     {                                // List of strings
  371.                         "Mac OS",
  372.                         "OS/2 Warp",
  373.                         "Windows 95",
  374.                         "Windows NT",
  375.                         "IBM AIX",
  376.                         "Sun Sparc Solaris",
  377.                         "Sun OS 4.1.x",
  378.                         "HP /UX",
  379.                         "Unix IRIX",
  380.                         "Unix Linux"
  381.                     }
  382.                 ),
  383.                 FW_RButton (
  384.                     kAddButtonID,                    // view id
  385.                     FW_BOUNDS(372,304,372+64,324),
  386.                     FW_kFixedBounds,                // binding
  387.                     FW_kButtonPressedMsg,            // control message
  388.                     FW_kFrameReceiver,                // receiver
  389.                     0,                                // control value
  390.                     FW_kPushButton,                    // button kind
  391.                     FW_SYSTEM_FONT,
  392.                     "Add"            
  393.                 ),
  394.                 FW_RButton (
  395.                     kRemoveButtonID,                // view id
  396.                     FW_BOUNDS(296,304,296+64,324),
  397.                     FW_kFixedBounds,                // binding
  398.                     FW_kButtonPressedMsg,            // control message
  399.                     FW_kFrameReceiver,                // receiver
  400.                     0,                                // control value
  401.                     FW_kPushButton,                    // button kind
  402.                     FW_SYSTEM_FONT,
  403.                     "Remove"            
  404.                 ),
  405.                 FW_RPopupMenu (
  406.                     kBrowseTimePopupID,                // view id
  407.                     FW_BOUNDS(68,320,68+192,340),
  408.                     FW_kFixedBounds,                // binding
  409.                     FW_kPopupClickedMsg,            // control message
  410.                     FW_kFrameReceiver,                // control receiver
  411.                     0,                                // control value
  412.                     kBrowseTimeMenuResID,            // Mac menu id
  413.                     0,                                // title width
  414.                     2,                                // Initial menu item
  415.                     0,                                // Menu variation
  416.                     0,                                // Menu refCon    
  417.                     FW_SYSTEM_FONT,
  418.                     ""                                // title
  419.                 ),
  420.                 FW_RPopupMenu (
  421.                     kOnlineTimePopupID,                // view id
  422.                     FW_BOUNDS(72,380,72+192,400),
  423.                     FW_kFixedBounds,                // binding
  424.                     FW_kPopupClickedMsg,            // control message
  425.                     0,                                // control receiver
  426.                     0,                                // control value
  427.                     kOnlineTimeMenuResID,            // Mac menu id
  428.                     0,                                // title width
  429.                     1,                                // Initial menu item
  430.                     0,                                // Menu variation
  431.                     0,                                // Menu refCon    
  432.                     FW_SYSTEM_FONT,
  433.                     ""                                // title
  434.                 ),
  435.                 FW_RGroupBox (
  436.                     0,                                // view id
  437.                     FW_BOUNDS(12,208,12+248,208+72),
  438.                     FW_kFixedBounds, LABEL_FONT, FW_RGB_WHITE, 
  439.                     "How did you discover ODFWired?"            
  440.                 ),
  441.                 FW_RButton (
  442.                     kWordOfMouthRadioID,            // view id
  443.                     FW_BOUNDS(20,224,20+232,224+16),
  444.                     FW_kFixedBounds,                // binding
  445.                     0,                                // control message
  446.                     0,                                // control receiver
  447.                     0,                                // control value
  448.                     FW_kRadioButton,                // button kind
  449.                     FW_SYSTEM_FONT,
  450.                     "Word of mouth"            
  451.                 ),
  452.                 FW_RButton (
  453.                     kHyperLinkRadioID,                // view id
  454.                     FW_BOUNDS(20,240,20+232,240+16),
  455.                     FW_kFixedBounds,                // binding
  456.                     0,                                // control message
  457.                     0,                                // control receiver
  458.                     0,                                // control value
  459.                     FW_kRadioButton,                // button kind
  460.                     FW_SYSTEM_FONT,
  461.                     "Hyperlink from another site:"            
  462.                 ),
  463.                 FW_RButton (
  464.                     kMacTechRadioID,                // view id
  465.                     FW_BOUNDS(20,256,20+232,256+16),
  466.                     FW_kFixedBounds,                // binding
  467.                     0,                                // control message
  468.                     0,                                // control receiver
  469.                     1,                                // control value
  470.                     FW_kRadioButton,                // button kind
  471.                     FW_SYSTEM_FONT,
  472.                     "Magazine Advertisment"            
  473.                 ),
  474.                 FW_RButton (
  475.                     kYesRadioID,                    // view id
  476.                     FW_BOUNDS(400,348,468,348+16),
  477.                     FW_kFixedBounds,                // binding
  478.                     0,                                // control message
  479.                     0,                                // control receiver
  480.                     0,                                // control value
  481.                     FW_kRadioButton,                // button kind
  482.                     FW_SYSTEM_FONT,
  483.                     "Yes"            
  484.                 ),
  485.                 FW_RButton (
  486.                     kNoRadioID,                        // view id
  487.                     FW_BOUNDS(400,364,468,364+16),
  488.                     FW_kFixedBounds,                // binding
  489.                     FW_kButtonPressedMsg,            // control message
  490.                     FW_kFrameReceiver,                // control receiver
  491.                     0,                                // control value
  492.                     FW_kRadioButton,                // button kind
  493.                     FW_SYSTEM_FONT,
  494.                     "No"            
  495.                 ),    
  496.                 FW_RButton (
  497.                     kSubscribeButtonID,                // view id
  498.                     FW_BOUNDS(336,528,336+128,528+20),
  499.                     FW_kFixedBounds,                // binding
  500.                     FW_kButtonPressedMsg,            // control message
  501.                     FW_kFrameReceiver,                // receiver
  502.                     0,                                // control value
  503.                     FW_kPushButton,                    // button kind
  504.                     FW_SYSTEM_FONT,
  505.                     "Join ODFWired!"            
  506.                 )
  507.                 FW_RGraphicControl (0, 
  508.                     WBOUNDS (48, 12, 32, 32), 
  509.                     FW_kFixedBounds,
  510.                     0, 0, 0, {
  511.                         0, FW_RGraphicIcon (1000)
  512.                     }
  513.                 ),
  514.                 FW_RGraphicControl (0, 
  515.                     WBOUNDS (396, 12, 32, 32), 
  516.                     FW_kFixedBounds,
  517.                     0, 0, 0, {
  518.                         0, FW_RGraphicIcon (1001)
  519.                     }
  520.                 ),
  521.                 FW_RStaticText (0,
  522.                     WBOUNDS(272,348,124,52),
  523.                     FW_kFixedBounds, LABEL_FONT, FW_RGB_WHITE, 
  524.                     "Do you plan to write components in Java?"            
  525.                 ),
  526.                 FW_RStaticText (0,
  527.                     WBOUNDS(8,404,256,16),
  528.                     FW_kFixedBounds, LABEL_FONT, FW_RGB_WHITE, 
  529.                     "Additional comments for the ODF team:"
  530.                 ),
  531.                 FW_RStaticText (0,
  532.                     WBOUNDS(272,208,180,16),
  533.                     FW_kFixedBounds, LABEL_FONT, FW_RGB_WHITE, 
  534.                     "Which platforms do you use?"            
  535.                 ),
  536.                 FW_RStaticText ('titl',
  537.                     WBOUNDS(84,12,308,32),
  538.                     FW_kFixedBounds, 
  539.                     { FW_FIX (32), FW_kPlain, "Helvetica" }, 
  540.                     FW_RGB_WHITE,
  541.                     "Join ODFWired!"            
  542.                 ),
  543.                 FW_RStaticText (0,
  544.                     WBOUNDS(12,128,256,20),
  545.                     FW_kFixedBounds, LABEL_FONT, FW_RGB_WHITE, 
  546.                     "Enter your email address:"            
  547.                 ),
  548.                 FW_RStaticText (0,
  549.                     WBOUNDS(12,80,256,20),
  550.                     FW_kFixedBounds, LABEL_FONT, FW_RGB_WHITE, 
  551.                     "Enter your last name:"            
  552.                 ),
  553.                 FW_RStaticText (0,
  554.                     WBOUNDS(12,56,256,20),
  555.                     FW_kFixedBounds, LABEL_FONT, FW_RGB_WHITE, 
  556.                     "Enter your first name:"            
  557.                 ),
  558.                 FW_RStaticText (0,
  559.                     WBOUNDS(12,104,256,20),
  560.                     FW_kFixedBounds, LABEL_FONT, FW_RGB_WHITE, 
  561.                     "Pick a member name (lowercase only):"            
  562.                 ),
  563.                 FW_RStaticText (0,
  564.                     WBOUNDS(12,168,452,36),
  565.                     FW_kFixedBounds, LABEL_FONT, FW_RGB_WHITE, 
  566.                     "The best way to hear about new content and upcoming events "
  567.                     "is to subscribe to the weekly ODFWired email newsletter."
  568.                 ),
  569.                 FW_RStaticText (0,
  570.                     WBOUNDS(8,344,256,32),
  571.                     FW_kFixedBounds, LABEL_FONT, FW_RGB_WHITE, 
  572.                     "How long have you had Web access, either through commercial "
  573.                     "service or an ISP?"
  574.                 ),
  575.                 FW_RStaticText (0,
  576.                     WBOUNDS(12,284,248,32),
  577.                     FW_kFixedBounds, LABEL_FONT, FW_RGB_WHITE, 
  578.                     "During a typical week, how much time do you spend browsing the Web?"            
  579.                 ),
  580.             },                            // End list of Subviews
  581.             
  582.             //
  583.             // FormView continued...
  584.             //
  585.             
  586.             kFormPict1, // blank picture
  587.             kFormPict2, // confirmation picture
  588.             
  589.             //
  590.             // RadioClusters will be replaced by FW_CClusterView post-R3
  591.             //
  592.             
  593.             FW_RRadioCluster (
  594.                 { kWordOfMouthRadioID, kHyperLinkRadioID, kMacTechRadioID }
  595.             ),
  596.             FW_RRadioCluster (
  597.                 { kYesRadioID, kNoRadioID }
  598.             )             
  599.         )
  600.     }
  601. }
  602.  
  603. //========================================================================================
  604. // resource FW_RFrameLayout(kPasswordDialog)
  605. //========================================================================================
  606. // See constants in "FWViews.k", macros & resource types in "FWViews.fr"
  607.  
  608. resource FW_RFrameLayout(kPasswordDialog)
  609. {
  610.     FW_POINT (100, 100),            // LayoutSize
  611.     
  612.     {                        // Start list of frame's subviews
  613.         FW_RStaticText
  614.         (
  615.             0,                            // view id
  616.             FW_BOUNDS(20, 40, 140, 60),
  617.             FW_kFixedBounds,            // binding
  618.             FW_NORMAL_FONT,
  619.             FW_RGB_LIGHT_GRAY,            // erase color
  620.             "Pick a password:"            
  621.         ),
  622.         FW_RStaticText 
  623.         (
  624.             0,                            // view id
  625.             FW_BOUNDS(20, 70, 140, 90),
  626.             FW_kFixedBounds,            // binding
  627.             FW_NORMAL_FONT, 
  628.             FW_RGB_LIGHT_GRAY,            // erase color
  629.             "Retype to verify:"            
  630.         ),
  631.         RPwdEditView        // edit view to enter new password
  632.         (
  633.             kPasswordEditID,            // view id
  634.             FW_BOUNDS(150, 40, 280, 60),
  635.             FW_kFixedBounds,            // binding
  636.             10,                            // max chars
  637.             9,                            // attributes
  638.             FW_NORMAL_FONT, 
  639.             ""                            // initial text
  640.         ), 
  641.         RPwdEditView        // edit view to confirm password
  642.         (
  643.             kConfirmEditID,                // view id
  644.             FW_BOUNDS(150, 70, 280, 90),
  645.             FW_kFixedBounds,            // binding
  646.             10,                            // max chars
  647.             9,                            // attributes
  648.             FW_NORMAL_FONT, 
  649.             ""                            // initial text
  650.         ), 
  651.         FW_RButton
  652.         (
  653.             kOKButtonID,                // view id
  654.             FW_BOUNDS(180, 120, 260, 148),
  655.             FW_kFixedBounds,            // binding
  656.             FW_kDefaultButtonMsg,        // "OK" message
  657.             0,                            // receiver = dialogFrame by default
  658.             0,                            // control value
  659.             FW_kDefaultPushButton,        // button kind (with outline)
  660.             FW_SYSTEM_FONT,
  661.             "OK"            
  662.         ),
  663.         FW_RButton
  664.         (
  665.             kCancelButtonID,            // view id
  666.             FW_BOUNDS(60, 123, 120, 145),
  667.             FW_kFixedBounds,            // binding
  668.             FW_kCancelButtonMsg,        // "Cancel" message
  669.             0,                            // receiver = dialogFrame by default
  670.             0,                            // control value
  671.             FW_kPushButton,                // button kind
  672.             FW_SYSTEM_FONT,
  673.             "Cancel"            
  674.         )
  675.     },                        // End list of frame's subviews
  676.     { }                        // no scroller
  677. }; 
  678.